1 These should all get escaped: 2 3 Backslash: \\ 4 5 Backtick: \` 6 7 Asterisk: \* 8 9 Underscore: \_ 10 11 Left brace: \{ 12 13 Right brace: \} 14 15 Left bracket: \[ 16 17 Right bracket: \] 18 19 Left paren: \( 20 21 Right paren: \) 22 23 Greater-than: \> 24 25 Hash: \# 26 27 Period: \. 28 29 Bang: \! 30 31 Plus: \+ 32 33 Minus: \- 34 35 36 37 These should not, because they occur within a code block: 38 39 Backslash: \\ 40 41 Backtick: \` 42 43 Asterisk: \* 44 45 Underscore: \_ 46 47 Left brace: \{ 48 49 Right brace: \} 50 51 Left bracket: \[ 52 53 Right bracket: \] 54 55 Left paren: \( 56 57 Right paren: \) 58 59 Greater-than: \> 60 61 Hash: \# 62 63 Period: \. 64 65 Bang: \! 66 67 Plus: \+ 68 69 Minus: \- 70 71 72 Nor should these, which occur in code spans: 73 74 Backslash: `\\` 75 76 Backtick: `` \` `` 77 78 Asterisk: `\*` 79 80 Underscore: `\_` 81 82 Left brace: `\{` 83 84 Right brace: `\}` 85 86 Left bracket: `\[` 87 88 Right bracket: `\]` 89 90 Left paren: `\(` 91 92 Right paren: `\)` 93 94 Greater-than: `\>` 95 96 Hash: `\#` 97 98 Period: `\.` 99 100 Bang: `\!` 101 102 Plus: `\+` 103 104 Minus: `\-` 105 106 107 These should get escaped, even though they're matching pairs for 108 other Markdown constructs: 109 110 \*asterisks\* 111 112 \_underscores\_ 113 114 \`backticks\` 115 116 This is a code span with a literal backslash-backtick sequence: `` \` `` 117 118 This is a tag with unescaped backticks <span attr='`ticks`'>bar</span>. 119 120 This is a tag with backslashes <span attr='\\backslashes\\'>bar</span>. 121